﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using DataTier;
using DataTier.Repository;
using Common;

namespace DataServices
{
    [ServiceBehavior(Namespace = WCFSettings.Namespace)]
    public class SettingsService : ISettingsService
    {
        /// <summary>
        /// Возвращает объект со значением настройки по конкретному названию настройки
        /// </summary>
        /// <param name="settingKey"></param>
        /// <returns></returns>
        public SystemSettings GetSettingValue(string settingKey)
        {
            try
            {
                var setting = new SettingsRepository().GetSettingValue(settingKey);
                return setting;
            }
            catch (Exception ex)
            {
                new Logger().LogException(ex);
                //return null;
                throw new FaultException<ExceptionDetail>(new ExceptionDetail(ex), "Произошла ошибка при попытке получить значение по ключу '" + settingKey + "' из базы данных.");
            }
        }


        /// <summary>
        /// Возвращает список всех настроек системы из базы данных
        /// </summary>
        /// <returns></returns>
        public List<SystemSettings> GetSettings()
        {
            try
            {
                var settings = new SettingsRepository().GetSettings();
                return settings;
            }
            catch (Exception ex)
            {
                new Logger().LogException(ex);
                //return null;
                throw new FaultException<ExceptionDetail>(new ExceptionDetail(ex), "Произошла ошибка при попытке получить список настроек из базы данных.");
            }
        }

    }
}
